package com.Reporte_Evolutivo;

import java.util.ArrayList;
import java.util.concurrent.ExecutionException;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.Adaptadores.ImageAdapter_final;
import com.Generales.R;
import com.JSON.JSONParser_Final;
import android.app.ActionBar;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class RE_2_Subtipo_Evento extends Activity {
	
	public String idTipo= "vacio";
	public String idPromotor="vacio";
	public GridView gridviewSubTipos;
	ArrayList<subTipo> arraySub = new ArrayList<subTipo>();
	private String nombreUser;
	private ProgressDialog dialog;
	ImageAdapter_final adapter;
	private int idperfil;
	
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		nombreUser = this.getIntent().getExtras().getString("nombreUser");
		idPromotor = this.getIntent().getExtras().getString("idPromotor");
		idTipo= this.getIntent().getExtras().getString("idTipoEvento");
		idperfil = this.getIntent().getExtras().getInt("idperfil");
		Log.e("idTipo:", idTipo);		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.re_2_subtipo_evento);
		ActionBar actionBar = this.getActionBar();
		actionBar.hide();
				
		
		
		if (idPromotor.equals("vacio")){
			arraySub = getSubtiposDeunTipo(idTipo);
			Log.e("size:", String.valueOf(arraySub.size()));
		}else{
			arraySub = getSubtiposDeunTipo(idTipo,idPromotor);
		}
		//ArrayList<subTipo> tsb = getSubtiposDeunTipo(idTipo, idPromotor);
		
		if (arraySub.size()==0) {
        	Toast.makeText(this, "No existe ninguna subtipo. Retroceder y elegir otro Tipo.", Toast.LENGTH_SHORT).show();
        		
        }else{
        	
        	for(int i=0; i<arraySub.size();i++){
        		Log.e("url:", arraySub.get(i).getUrl());
        	}        	    	
        	dialog = new ProgressDialog(this);
        	dialog.setMessage("Descargando los Subtipos...");
        	dialog.setTitle("Por favor espere");
        	//dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        	dialog.setCancelable(false);
        	new progress().execute();
  		
        	
        }
                
        
	}

	private ArrayList<subTipo> getSubtiposDeunTipo(String idTipo2,String idPromotor2) {
		ArrayList<subTipo> array = new ArrayList<subTipo>();
		JSONArray  jArray = null;
		try {
			jArray = (new JSONParser_Final().execute("http://200.16.7.112:3000/reports_management/report/subtipoPromotor/"+idTipo2+"/"+idPromotor2+".json")).get();
		} catch (InterruptedException e) {
			
			e.printStackTrace();
		} catch (ExecutionException e) {
			
			e.printStackTrace();
		}
		
		try {
			for(int i = 0; i < jArray.length(); i++){
				 JSONObject jsonItem = jArray.getJSONObject(i);
		         JSONObject jsonItem1 = jsonItem.getJSONObject("cubo_evento");
		         int idSubtipo = jsonItem1.getInt("idSubTipoEvento");
		         String url = jsonItem1.getString("urlSubTipo");
		         subTipo st = new subTipo(idSubtipo, url);
		         array.add(st);
			}
		}catch (JSONException e) {
		     e.printStackTrace();
		 }
		return array;
	}

	private ArrayList<subTipo> getSubtiposDeunTipo(String idTipo2) {
		ArrayList<subTipo> array = new ArrayList<subTipo>();
		JSONArray  jArray = null;
		try {
			jArray = (new JSONParser_Final().execute("http://200.16.7.112:3000/reports_management/report/subtipo/"+idTipo2+".json")).get();
		} catch (InterruptedException e) {
			
			e.printStackTrace();
		} catch (ExecutionException e) {
			
			e.printStackTrace();
		}
		
		try {
			for(int i = 0; i < jArray.length(); i++){
				 JSONObject jsonItem = jArray.getJSONObject(i);
		         JSONObject jsonItem1 = jsonItem.getJSONObject("cubo_evento");
		         int idSubtipo = jsonItem1.getInt("idSubTipoEvento");
		         String url = jsonItem1.getString("urlSubTipo");
		         subTipo st = new subTipo(idSubtipo, url);
		         array.add(st);
			}
		}catch (JSONException e) {
		     e.printStackTrace();
		 }
		return array;
	}
	
	
	
	
	public class progress extends AsyncTask<Void, Void, ImageAdapter_final> {
		
			
		@Override
	    protected void onPreExecute() {
			//dialog.setProgress(0);
			//dialog.setMax(100);
			dialog.show(); //Mostramos el diálogo antes de comenzar
	    }
		
		@Override
		protected ImageAdapter_final doInBackground(Void... params) {
			
			adapter = new ImageAdapter_final(arraySub, RE_2_Subtipo_Evento.this);			
			return null;
		}
		
	    @Override
	    protected void onPostExecute(ImageAdapter_final result) {
	    	dialog.dismiss();
	    	gridviewSubTipos = (GridView)findViewById(R.id.grid_tipo_evento);
	    	gridviewSubTipos.setAdapter(adapter);
    		gridviewSubTipos.setOnItemClickListener(new OnItemClickListener()
    	    {
    			@Override
    			public void onItemClick(AdapterView<?> adapter, View v, int position,long id) {
    				
    				subTipo SubTipo = (subTipo)adapter.getItemAtPosition(position);				
    				Intent intent = new Intent(RE_2_Subtipo_Evento.this,RE_3_Muestra_Eventos.class);
    		    	intent.putExtra("idSubtipo",String.valueOf(SubTipo.getIdSubtipo()));
    		    	intent.putExtra("idPromotor",idPromotor);
    		    	intent.putExtra("nombreUser",nombreUser);
    		    	intent.putExtra("idperfil",idperfil);
    		    	startActivity(intent);
    			}	    	
    	    });
	    }
		
	}
	
	
		
}
